package com.nanning.system.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nanning.system.domain.IncomeComplete;
import com.nanning.system.mapper.IncomeComleteMapper;
import com.nanning.system.service.IIncomeCompleteService;
import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * <p>
 * 货运收入完成情况 服务实现类
 * </p>
 *
 * @author zhurenwang
 * @since 2025-05-03
 */
@Service
public class IncomeComleteServiceImpl extends ServiceImpl<IncomeComleteMapper, IncomeComplete> implements IIncomeCompleteService {

    private static final Map<String, String> map = new HashMap<>();

    static {
        //集装箱
        map.put("桂林部-月度-月累完成-当月计划", "21,3-21,1");
        map.put("桂林部-年度-年累完成-年度计划", "21,15-21,14");

        map.put("鹧鸪江部-月度-月累完成-当月计划", "22,3-22,1");
        map.put("鹧鸪江部-年度-年累完成-年度计划", "22,15-22,14");

        map.put("柳州北部-月度-月累完成-当月计划", "23,3-23,1");
        map.put("柳州北部-年度-年累完成-年度计划", "23,15-23,14");

        map.put("柳州南部-月度-月累完成-当月计划", "24,3-24,1");
        map.put("柳州南部-年度-年累完成-年度计划", "24,15-24,14");

        map.put("金城江部-月度-月累完成-当月计划", "25,3-25,1");
        map.put("金城江部-年度-年累完成-年度计划", "25,15-25,14");

        map.put("来宾部-月度-月累完成-当月计划", "26,3-26,1");
        map.put("来宾部-年度-年累完成-年度计划", "26,15-26,14");

        map.put("南宁南部-月度-月累完成-当月计划", "27,3-27,1");
        map.put("南宁南部-年度-年累完成-年度计划", "27,15-27,14");

        map.put("崇左部-月度-月累完成-当月计划", "28,3-28,1");
        map.put("崇左部-年度-年累完成-年度计划", "28,15-28,14");

        map.put("田东部-月度-月累完成-当月计划", "29,3-29,1");
        map.put("田东部-年度-年累完成-年度计划", "29,15-29,14");

        map.put("百色部-月度-月累完成-当月计划", "30,3-30,1");
        map.put("百色部-年度-年累完成-年度计划", "30,15-30,14");

        map.put("兴义部-月度-月累完成-当月计划", "31,3-31,1");
        map.put("兴义部-年度-年累完成-年度计划", "31,15-31,14");
    }

    @Override
    public void importData(Sheet sheet) {
        baseMapper.delete(new QueryWrapper<>());
        map.forEach((k, v) -> {
            IncomeComplete incomeComplete = new IncomeComplete();
            String[] ks = k.split("-");
            String[] vs = v.split("-");
            String[] vs0 = vs[0].split(",");
            String[] vs1 = vs[1].split(",");
            incomeComplete.setArea(ks[0]);
            incomeComplete.setTimeRange(ks[1]);
            incomeComplete.setRealNum(BigDecimal.valueOf(sheet.getRow(Integer.parseInt(vs0[0])).getCell(Integer.parseInt(vs0[1])).getNumericCellValue()));
            incomeComplete.setPlanNum(BigDecimal.valueOf(sheet.getRow(Integer.parseInt(vs1[0])).getCell(Integer.parseInt(vs1[1])).getNumericCellValue()));
            save(incomeComplete);
        });
    }
}
